package cc.lj.internal.core.model;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 将查询参数和返回值类型分开，这样入参就不用一路转换进来了
 * @param <P>
 * @param <O>
 */
public interface BasePageHelper2<P,O> {
     /**
     * 分页查询
     *
     * @param param 请求参数PO
     * @return 分页集合
     */
    default PageInfo<O> page(PageParam<P> param) {
        return PageHelper.startPage(param).doSelectPageInfo(() -> list(param.getParam()));
    }
    /**
     * 集合查询
     *
     * @param param 查询参数
     * @return 查询响应
     */
    List<O> list(P param);
}
